#ifndef __TYPE_H__
#define __TYPE_H__

//#define _STD

#ifndef _STD

        // #define __USE_KEIL

        #ifdef __USE_KEIL
                #include <reg51.h>
        #else
                #define _USE_GNU_C
                #include <mcs51/8052.h>
typedef __bit  bit;
typedef __sbit sbit;
typedef __sfr  sfr;
                #define idata __idata
        #endif

        #ifndef _USE_UNSTD
typedef unsigned char bool;
        #endif

#else

        #define __code

#endif

#define true  1
#define false 0
typedef char          int8;
typedef int           int16;
typedef long          int32;
typedef unsigned char uint8;
typedef unsigned int  uint16;
typedef unsigned long uint32;

typedef unsigned long uint_max;
typedef long          int_max;
typedef float         decimal_t;

/**
 * 枚举: 数字类型(Numer Type)
 */
enum _NType
{
        N_TYPE_DECIMAL = 1, // 小数类型
        N_TYPE_INTEGER = 0, // 整数
};

/**
 * 枚举: 按钮类型(Button Type)
 */
enum _ButtonType
{
        BUTTON_TYPE_DOT = 10, // 小数点
        BUTTON_TYPE_EQU = 11, // 等于号
        BUTTON_TYPE_DIV = 12, // 除号
        BUTTON_TYPE_MUL = 13, // 乘号
        BUTTON_TYPE_SUB = 14, // 减号
        BUTTON_TYPE_ADD = 15, // 加号

        BUTTON_TYPE_CLS,   // 清空所有内容
        BUTTON_TYPE_LEFT,  // 左移数字
        BUTTON_TYPE_RIGHT, // 右移数字

        BUTTON_TYPE_NONE = 22, // 无按钮信号
};

#endif